package com.dhecp.project.logstics.service;

import com.dhecp.common.core.domain.AjaxResult;
import com.dhecp.project.logstics.domain.FbaSpellTicket;
import com.dhecp.project.logstics.domain.FbaSpellTicketDetail;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 拼票单  业务层
 * @Author fxz
 * @Date 2022/10/25
 */
public interface FbaSpellTicketService {
    /**
     * 查询拼票单
     * @param params
     * @Author: fxz
     */
    List<FbaSpellTicket> queryList(Map<String, Object> params) throws Exception;

    /**
     *@Description: 拼票动作
     *@Author: fxz
     *@date: 2022-10-09 9:42
     */
    AjaxResult updateSpellTicket(Map<String, Object> params);

    /**
     *@Description: 拼票解除动作
     *@Author: fxz
     *@date: 2022-10-09 9:42
     */
    AjaxResult cancelSpellTicket(Map<String, Object> params);

    /**
     *@Description: 删除数据
     *@Param: guid 唯一标识
     *@return: com.dhecp.common.core.domain.AjaxResult
     *@Author: hlf
     *@date: 2022-08-17 14:56
     */
    AjaxResult delete (Map<String, Object> params);


    /**
     *@Description: 审核
     *@Author: fxz
     *@date: 2022-10-09 9:42
     */
    AjaxResult updateState(Map<String, Object> params);

    /**
     *@Description: 回退
     *@Author: fxz
     *@date: 2022-10-09 9:42
     */
    AjaxResult spellTicketState(Map<String, Object> params);

    /**
     * 查询单个实体
     * @author Jason
     */
    FbaSpellTicket queryFirstByGuid(String guid);

    /**
     * 查询拼票合并后的数据
     * @param params
     * @Author: fxz
     */
    List<FbaSpellTicket> queryListMerge(Map<String, Object> params) throws Exception;

    AjaxResult saveData(Map<String, Object> params);
    AjaxResult loadDelivery(Map<String, Object> params);
    AjaxResult noTicket(Map<String, Object> params);
    AjaxResult htbtn(Map<String, Object> params);

    /**
     * 查询拼票预测数据
     */
    FbaSpellTicket queryTicketPooling(Map<String, Object> params) throws Exception;

    /**
     * 查询拼票预测子件预测数据
     */
    Set<FbaSpellTicketDetail> queryTicketPoolingDetail(Map<String, Object> params) throws Exception;
}
